package colecoes;

import interfaces.InterfaceVersao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import basicas.PessoaFisica;
import basicas.Veiculo;
import basicas.Versao;
import fachada.JDBC;

public class ColVersao implements InterfaceVersao {
	
	Vector lst = new Vector();   // --> Declaracao do Vetor

	public void cadastrarVersao(Versao V) throws ClassNotFoundException, SQLException{
		String sql = "insert into versao (descricaoversao,codveiculo,prazoversao,precoversao) values ('"+
		V.getDescricaoModelo()+"',"+
		V.getVei().getCodVeiculo()+","+
		V.getPrazoModelo()+","+
		V.getPrecoModelo()+");";
		
		Statement conexao = JDBC.getsStatement();
		conexao.executeUpdate(sql);
		conexao.close();
	}

	public void removerVersao(int codigo) throws ClassNotFoundException, SQLException{
		String sql = "DELETE FROM versao WHERE codversao = "+codigo+"";
		Statement conexao = JDBC.getsStatement();
		conexao.executeUpdate(sql);
		conexao.close();
	}
	
	public Versao consultarVersao(int codigo) throws ClassNotFoundException, SQLException {
		String sql = "SELECT *FROM versao;";
		Statement conexao = JDBC.getsStatement();
		ResultSet resultado = conexao.executeQuery(sql);
		
		while(resultado.next()){
			Versao ver = new Versao();
			ColVeiculo vei = new ColVeiculo();
			
			ver.setCodVersao(resultado.getInt("codVersao"));
			int codVeiculo = resultado.getInt("codVeiculo");
			ver.setVei(vei.consultarVeiculo(codVeiculo));
			
			ver.setDescricaoModelo(resultado.getString("descricaoVersao"));
			ver.setPrazoModelo(resultado.getInt("prazoVersao"));
			ver.setPrecoModelo(resultado.getFloat("precoVersao"));
			return ver;
		}
		conexao.close();
		return null;
	}

	public Vector listarVersao() throws ClassNotFoundException, SQLException {
		String sql = "SELECT *FROM versao;";
		Statement conexao = JDBC.getsStatement();
		ResultSet resultado = conexao.executeQuery(sql);                // Declaracao de uma query do banco
		
		while(resultado.next()){                                        // Enquanto a query estiver proximo
			Versao ver = new Versao();
			ColVeiculo vei = new ColVeiculo();
			
			ver.setCodVersao(resultado.getInt("codVersao"));
			int codVeiculo = resultado.getInt("codVeiculo");
			ver.setVei(vei.consultarVeiculo(codVeiculo));
			
			ver.setDescricaoModelo(resultado.getString("descricaoVersao"));
			ver.setPrazoModelo(resultado.getInt("prazoVersao"));
			ver.setPrecoModelo(resultado.getFloat("precoVersao"));
			
			lst.add(ver);                                               // Armazena o resultado da buxca no vetor
		}
		conexao.close();
		return lst;		                                                // Retorna o vetor
	}
	
	public int valorDoVeiculo() throws ClassNotFoundException, SQLException{
		String sql = "select max(codveiculo) from veiculo;";
		Statement conexao= JDBC.getsStatement();  
		ResultSet rs= conexao.executeQuery(sql);  
		int numero = 0; 

		if (rs.next()){
			numero = rs.getInt("max"); 
		}
		rs.close();
		conexao.close();
		return numero;
		
	}
	
}
